package cn.net.cfss.fgbp.provider.manage.aspect;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.Mapping;

import java.lang.annotation.*;

/**
 * 加在方法上面，可以给整个方法加上分布式锁，是对整个方法加锁，不建议加在对性能有要求的方法上
 * @author wutao
 * @version 1.0
 * @date 2021/4/8 15:38
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Mapping
@Documented
public @interface SynchronizedMethod {

    /**
     * 获取分布式锁最大失败次数，避免死循环
     * @return
     */
    int limitSize() default 50;
}
